草庐IT

C++ typedef 结构与类

全部标签

Java内存文件结构?

我需要在运行中使用资源做很多事情:解析xsd/xml文档,构建和编译java类,将它们打包成jarsanswars,在DB中持久化,将它们部署为OSGi等。我使用的大多数库/API都允许在内存中执行所有这些中间任务,但有一些“特殊”库仅使用java.io.File进行操作。除了使用真正的临时文件和目录之外,我别无选择,这在JavaEE环境中并不好。我相信必须有一个内存文件结构的库/解决方案,其节点扩展java.io.File(如我所见)。请放入已知/类似库的链接。欢迎任何评论。谢谢! 最佳答案 我不相信你会找到你要找的东西。编写ja

java 128位结构位操作

有没有一种方法可以在java中创建一个128位对象,可以像long或int一样进行位操作?我想做32位移位,我希望能够对整个128位结构进行位或运算。 最佳答案 在这里,我向您介绍...一个古老的想法。现在它被严重降级(没有代码增强器,什么都没有)到应该超快的简单128位东西。我真正想要的是一个基于ByteBuffer的C数组,类似于Struct,但完全可以在Java中使用。主要思想是一次分配多个对象并使用指向数组的指针。因此,它大大节省了内存,并且内存分配在连续区域,因此缓存未命中率较低(总是很好)。我做了一些适度的测试(但代码仍

java - 多线程如何破坏Hashmap的内部结构

在Java8fortheReallyImpatient中,Horstmann写道:IfmultiplethreadsmodifyaplainHashMap,theycandestroytheinternalstructure.Someofthelinksmaygomissing,orevengoincircles,renderingthedatastructureunusable.(Section6.2.1)我能理解不同步的并发访问会破坏我的数据。如果两个线程更新相同的值,一个可以覆盖另一个。但是为什么以及如何破坏内部存储器结构? 最佳答案

java - 在层次结构中为每个类创建一个对象实例

我在面试中被问到这个问题。有3个类A,BextendsA&CextendsB.我们必须设计符合这些约束的这些类客户端只能实例化A的一个实例,B的一个实例&一个C的实例使用默认构造函数new关键字。尝试创建任何这些类的另一个实例将导致异常。类的设计者必须强制执行上述2条规则,以便客户隐含地体验上述规则(即客户不应该有责任遵守上述规则)。我建议使用staticMap的方法.所以例如当有人调用newB()它会检查是否map.contains(B.class).如果是,则抛出异常,如果不是,则将实例保存在map中,然后创建对象。但下一个问题是我如何在每个类(class)上实现这种方法?按照我的

java - 序列化要由 Java 等反序列化的 C 结构的最佳方法

目前,我正在使用fread()/fwrite()将C/C++结构中的一些数据保存并加载到文件中。这在这个C应用程序中工作时工作得很好(每当结构更改以将sizeof()参数更新为fread()/fwrite()时我都可以重新编译),但是我如何在事先不知道的情况下将此文件加载到其他程序中C结构的sizeof()s?特别是,我编写了另一个Java应用程序来可视化该C结构二进制文件中包含的数据,但我想要一个关于如何读取该二进制文件的通用解决方案。(而不是我必须在C结构发生变化时手动将sizeof()s放入Java应用程序源中......)我正在考虑序列化为某种类型的文本或XML,但我不确定从哪

java - 我可以使用什么数据结构来计算国家代码的出现次数?

我需要某种数据结构,但还不知道哪种最合适。这是我正在处理的事情:我有一堆数据处理行,每一行都有自己的国家代码。我想获得每个国家/地区代码在整个过程中重复了多少次作为结果。 最佳答案 你可以试试HashMap.使用HashMap,您可以使用国家代码作为键,每个出现的次数作为存储在该键中的值。如果第一次遇到特定国家代码,将其插入map,初始值为1;否则,增加现有值。HashMapmyMap=newHashMap();for(...record:records){StringcountryCode=record.getCountryCod

java - 如何在 java 中创建一个简单但结构良好的乐谱类(乐谱)?

我正在使用非常基本的声音合成在我的游戏中即时创建音频和效果。基本上,我有一些方法可以在给定频率、振幅和持续时间的情况下播放声音。对于简短的短语和旋律,我想提出一个基本的符号,以便我可以轻松地重写或将新的旋律添加到代码中(最后也许我可以从文件中读取,但这可能有点过分了).但是我不确定如何实现它。我首先创建了一个EqualTemperamentTuning枚举,其中包含所有88个基本钢琴音符以及一个MIDI#字段和一个频率字段。这至少意味着我可以处理音符名称而不是频率。publicenumEqualTemperamentTuning{A_0(1,27.5),A_SHARP_0(2,29.1

Java可变字节数组数据结构

我试图找到一种简单的方法来创建一个可变字节数组,该数组可以自动附加任何原始Java数据类型。我一直在搜索,但找不到任何有用的东西。我正在寻找这样的东西ByteAppenderbyteStructure=newByteAppender();byteStructure.appendInt(5);byteStructure.appendDouble(10.0);byte[]bytes=byteStructure.toByteArray();ByteByffer很棒,但您必须在开始之前知道缓冲区的大小,这对我来说行不通。有一个类似的东西(StringBuilder)用于创建字符串,但我找不到用

java - 为什么Java中的Set数据结构内部使用Map?

我想知道为什么HashSet使用HashMap,TreeSet使用TreeMap,LinkedHashSet在内部使用LinkedHashMap?因为Set只是携带和存储键而不是值,所以使用额外的内存空间不是不经济吗?HashMap的Entry内部类如下classEntryimplementsMap.Entry{finalKkey;Vvalue;Entrynext;finalinthash;.......}对于Set我们真的不需要那个Vvalue变量,对吗?那么在内部使用map对象的好处和主要原因是什么? 最佳答案 更少的代码、更少

java - 具有两种 O(1) 查找方式的数据结构。哈希表?

我正在实现一个系统,其中我有一个姓名列表,每个人都有1个电话号码。我需要能够输入姓名并查找电话号码,或者输入电话号码并查找姓名。我知道我可以通过两个哈希表来做到这一点-一个从姓名到电话号码,另一个从电话号码到姓名。然后我可以在O(1)时间内向任一方向查找。然而,这似乎是我存储了太多数据-每个姓名和每个电话号码都存储了两次。有什么方法可以更有效地做到这一点?我应该使用什么数据结构来存储姓名和电话号码?如果相关的话,我正在用Java编码。非常感谢! 最佳答案 Java不提供开箱即用的双向哈希表。依赖于两个哈希表的解决方案已经很好了,除非